#ifndef _CURSADENODEDEF_H_
#define _CURSADENODEDEF_H_
#include "MgrBase.h"
#include "SimpleRefection.h"
class CursadeSearchRule;
class CursadeReliveRule;
class LadderBuff;
class CursadeNodeDef:public ReflectionBase
{
	DECL_REFLECTION(CursadeNodeDef,"../../config/CursadeNodeDef.xml");
public:
	int32			m_iID;
	std::string		m_sDisplayName;
	int32			m_iSearchRule;
	int32			m_iReliveRule;
	int32			m_iRewardDropID;
	int32			m_iLadderBuff;
	int32			m_iWinAddCoin;
	int32			m_iwinAddExp;
	int32			m_iLoseAddCoin;
	int32			m_iLoseAddExp;
	int32			m_iAddScore;

	const CursadeSearchRule * m_pSearchRule;
	const CursadeReliveRule * m_pReliveRule;
	const LadderBuff * m_pLadderBuff;
	const CursadeNodeDef * m_pNextNode;

	rewrite virtual void OnArchieveReaded();
private:
};

typedef DefMangerTpl<CursadeNodeDef> __CursadeNodeDefManager; //eDefaultDef_Num
class CursadeNodeDefManager:public __CursadeNodeDefManager
{
public:
	static CursadeNodeDefManager& Instance(){static CursadeNodeDefManager _instance;return _instance;	}
	virtual void OnArchieveReaded();
	const CursadeNodeDef* GetMaxNode() const { return m_pMaxNode;}
	const CursadeNodeDef* GetFirstNode() const { return m_pFirstNode;}
private:
	CursadeNodeDefManager(){}

	const CursadeNodeDef* m_pFirstNode;
	const CursadeNodeDef* m_pMaxNode;
	
};

#endif
/////////////////////////////////////////
